<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>DAT for recommender | Hexo</title>
  <meta name="keywords" content="">
  <meta name="description" content="DAT for recommender | Hexo">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description" content="第二章 线性表线性表：表内数据类型相同，有限序列 本章将以总结的形式展现： 2.1 顺序表与链式表的区别     顺序表 链式表     存取 随机存取 顺序存取   结构 顺序存储（连续） 随机存储（不连续）   空间分配 静态存储（可以动态分配） 动态存储   操作 查找 O(1) ,插入和删除O（n） 查找 O(n) ,插入和删除O（1）   缺点 插入删除不便，长度不可以改变 查找速度慢，">
<meta property="og:type" content="article">
<meta property="og:title" content="数据结构">
<meta property="og:url" content="http://yoursite.com/2021/03/12/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/index.html">
<meta property="og:site_name" content="Hexo">
<meta property="og:description" content="第二章 线性表线性表：表内数据类型相同，有限序列 本章将以总结的形式展现： 2.1 顺序表与链式表的区别     顺序表 链式表     存取 随机存取 顺序存取   结构 顺序存储（连续） 随机存储（不连续）   空间分配 静态存储（可以动态分配） 动态存储   操作 查找 O(1) ,插入和删除O（n） 查找 O(n) ,插入和删除O（1）   缺点 插入删除不便，长度不可以改变 查找速度慢，">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/23/171951-630686.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/23/171844-136893.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/19/203103-111988.jpeg">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/23/171839-101678.jpeg">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/23/200119-510473.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202103/05/113954-515448.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/23/203146-263519.jpeg">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/19/153239-688589.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/19/153248-836462.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/19/153259-101399.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202103/11/113055-306258.jpeg">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/19/151817-474283.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/02/103950-168345.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/02/105245-140913.png">
<meta property="og:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/19/153313-134836.png">
<meta property="article:published_time" content="2021-03-11T16:00:00.000Z">
<meta property="article:modified_time" content="2021-03-11T07:19:09.038Z">
<meta property="article:author" content="MOLU">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://gitee.com/moluggg/image/raw/master/img/202102/23/171951-630686.png">


<link rel="icon" href="/img/avatar.jpg">

<link href="/css/style.css?v=1.1.0" rel="stylesheet">

<link href="/css/hl_theme/github.css?v=1.1.0" rel="stylesheet">

<link href="//cdn.jsdelivr.net/npm/animate.css@4.1.0/animate.min.css" rel="stylesheet">

<script src="//cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="/js/titleTip.js?v=1.1.0" ></script>

<script src="//cdn.jsdelivr.net/npm/highlightjs@9.16.2/highlight.pack.min.js"></script>
<script>
    hljs.initHighlightingOnLoad();
</script>

<script src="//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js"></script>



<script src="//cdn.jsdelivr.net/npm/jquery.cookie@1.4.1/jquery.cookie.min.js" ></script>

<script src="/js/iconfont.js?v=1.1.0" ></script>

<meta name="generator" content="Hexo 5.0.0"></head>
<div style="display: none">
  <input class="theme_disqus_on" value="false">
  <input class="theme_preload_comment" value="">
  <input class="theme_blog_path" value="">
  <input id="theme_shortcut" value="true" />
</div>


<body>
<aside class="nav">
    <div class="nav-left">
        <a href="/" class="avatar_target">
    <img class="avatar" src="/img/avatar.jpg" />
</a>
<div class="author">
    <span>MOLU</span>
</div>

<div class="icon">
    
        
        <a title="rss" href="/atom.xml" target="_blank">
            
                <i class="iconfont icon-rss"></i>
            
        </a>
        
    
        
        <a title="github" href="https://github.com/molu-ggg" target="_blank">
            
                <i class="iconfont icon-github"></i>
            
        </a>
        
    
        
    
        
    
        
        <a title="email" href="mailto:2572876783@qq.com" target="_blank">
            
                <i class="iconfont icon-email"></i>
            
        </a>
        
    
</div>




<ul>
    <li><div class="all active" data-rel="All">All<small>(35)</small></div></li>
    
        
            
            <li><div data-rel="AI论文">AI论文<small>(5)</small></div>
                
            </li>
            
        
    
        
            
            <li><div data-rel="专业知识">专业知识<small>(2)</small></div>
                
            </li>
            
        
    
        
            
            <li><div data-rel="数学">数学<small>(2)</small></div>
                
            </li>
            
        
    
        
            
            <li><div data-rel="机器学习">机器学习<small>(12)</small></div>
                
            </li>
            
        
    
        
            
            <li><div data-rel="经典算法">经典算法<small>(10)</small></div>
                
            </li>
            
        
    
</ul>
<div class="left-bottom">
    <div class="menus">
    
    
    
    
    </div>
    <div><a class="about  hasFriend  site_url"  href="/about">About</a><a style="width: 50%"  class="friends">Friends</a></div>
</div>
<input type="hidden" id="yelog_site_posts_number" value="35">

<div style="display: none">
    <span id="busuanzi_value_site_uv"></span>
    <span id="busuanzi_value_site_pv"></span>
</div>

    </div>
    <div class="nav-right">
        <div class="friends-area">
    <div class="friends-title">
        Links
        <i class="iconfont icon-left"></i>
    </div>
    <div class="friends-content">
        <ul>
            
            <li><a target="_blank" href="http://yelog.org/">叶落阁</a></li>
            
        </ul>
    </div>
</div>
        <div class="title-list">
    <div class="right-top">
        <div id="default-panel">
            <i class="iconfont icon-search" data-title="搜索 快捷键 i"></i>
            <div class="right-title">All</div>
            <i class="iconfont icon-file-tree" data-title="切换到大纲视图 快捷键 w"></i>
        </div>
        <div id="search-panel">
            <i class="iconfont icon-left" data-title="返回"></i>
            <input id="local-search-input" />
            <label class="border-line" for="input"></label>
            <i class="iconfont icon-case-sensitive" data-title="大小写敏感"></i>
            <i class="iconfont icon-tag" data-title="标签"></i>
        </div>
        <div id="outline-panel" style="display: none">
            <div class="right-title">大纲</div>
            <i class="iconfont icon-list" data-title="切换到文章列表"></i>
        </div>
    </div>

    <div class="tags-list">
    <input id="tag-search" />
    <div class="tag-wrapper">
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>50</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>AI</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>数据结构，最短路径，图</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>机器学习</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>相似度计算</a>
            </li>
        
    </div>

</div>

    
    <div id="local-search-result">

    </div>
    
    <nav id="title-list-nav">
        
        <a id="top" class="All 经典算法 "
           href="/2020/07/20/b_leetcode/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="leetcode &amp; 蓝桥">leetcode &amp; 蓝桥</span>
            <span class="post-date" title="2020-07-20 00:00:00">2020/07/20</span>
        </a>
        
        <a id="top" class="All AI论文 "
           href="/2020/07/10/d_GAT/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="GAT">GAT</span>
            <span class="post-date" title="2020-07-10 08:50:20">2020/07/10</span>
        </a>
        
        <a  class="All 专业知识 "
           href="/2021/03/12/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="计算机组成原理">计算机组成原理</span>
            <span class="post-date" title="2021-03-12 00:00:00">2021/03/12</span>
        </a>
        
        <a  class="All 专业知识 "
           href="/2021/03/12/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="数据结构">数据结构</span>
            <span class="post-date" title="2021-03-12 00:00:00">2021/03/12</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2020/12/05/b_%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E4%B8%8E%E8%AE%B0%E5%BF%86%E5%8C%96%E6%90%9C%E7%B4%A2/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="动态规划记忆化">动态规划记忆化</span>
            <span class="post-date" title="2020-12-05 00:00:00">2020/12/05</span>
        </a>
        
        <a  class="All AI论文 "
           href="/2020/07/25/d_300-paperDAT/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="DAT for recommender">DAT for recommender</span>
            <span class="post-date" title="2020-07-25 08:50:20">2020/07/25</span>
        </a>
        
        <a  class="All 数学 "
           href="/2020/07/20/a_%E7%AE%97%E6%B3%95/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="算法总结">算法总结</span>
            <span class="post-date" title="2020-07-20 00:00:00">2020/07/20</span>
        </a>
        
        <a  class="All 数学 "
           href="/2020/07/20/a_%E6%95%B0%E5%AD%A6/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="数学">数学</span>
            <span class="post-date" title="2020-07-20 00:00:00">2020/07/20</span>
        </a>
        
        <a  class="All "
           href="/2020/07/05/%E5%AF%B9%E9%9A%90%E7%A7%98%E7%9A%84%E8%A7%92%E8%90%BD%E7%94%B5%E8%A7%86%E5%89%A7%E7%9A%84%E6%84%9F%E6%82%9F%E4%BB%A5%E5%8F%8A%E8%AE%A4%E8%AF%86/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="对隐秘的角落电视剧的感悟以及认识">对隐秘的角落电视剧的感悟以及认识</span>
            <span class="post-date" title="2020-07-05 00:00:00">2020/07/05</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2020/07/04/a_%E6%A8%A1%E6%9D%BF%E5%BA%93/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="模板库">模板库</span>
            <span class="post-date" title="2020-07-04 08:50:20">2020/07/04</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2020/07/04/a_%E7%99%BE%E5%BA%A6%E6%8A%80%E6%9C%AF%E8%AE%A4%E8%AF%81/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="百度技术认证">百度技术认证</span>
            <span class="post-date" title="2020-07-04 08:50:20">2020/07/04</span>
        </a>
        
        <a  class="All AI论文 "
           href="/2020/07/01/d_GCN%E8%AE%BA%E6%96%87%E8%A7%A3%E8%AF%BB/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="GCN">GCN</span>
            <span class="post-date" title="2020-07-01 08:50:20">2020/07/01</span>
        </a>
        
        <a  class="All AI论文 "
           href="/2020/06/04/d_word2vec_node2vec/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="Word2vec &amp; Node2vec">Word2vec &amp; Node2vec</span>
            <span class="post-date" title="2020-06-04 08:50:20">2020/06/04</span>
        </a>
        
        <a  class="All AI论文 "
           href="/2020/05/05/d_GAN/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="GAN">GAN</span>
            <span class="post-date" title="2020-05-05 08:50:20">2020/05/05</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2020/05/04/d_Deepwalk/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="DEEPWALK">DEEPWALK</span>
            <span class="post-date" title="2020-05-04 08:50:20">2020/05/04</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2020/02/15/b_%E8%B4%AA%E5%BF%83/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="贪心与动态规划">贪心与动态规划</span>
            <span class="post-date" title="2020-02-15 00:00:00">2020/02/15</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2020/02/12/a_2020/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="机器学习零散知识记录">机器学习零散知识记录</span>
            <span class="post-date" title="2020-02-12 00:00:00">2020/02/12</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2020/02/12/b_%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="动态规划——背包问题">动态规划——背包问题</span>
            <span class="post-date" title="2020-02-12 00:00:00">2020/02/12</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2020/02/03/b_%E8%93%9D%E6%A1%A5%E6%9D%AF%E7%BB%83%E4%B9%A0%E9%A2%98/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="蓝桥杯">蓝桥杯</span>
            <span class="post-date" title="2020-02-03 00:00:00">2020/02/03</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2020/01/20/c_%E5%86%B3%E7%AD%96%E6%A0%91/"
           data-tag="50"
           data-author="" >
            <span class="post-title" title="决策树总结">决策树总结</span>
            <span class="post-date" title="2020-01-20 00:00:00">2020/01/20</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2020/01/12/b_%E5%85%A8%E6%8E%92%E5%88%97/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="全排列">全排列</span>
            <span class="post-date" title="2020-01-12 00:00:00">2020/01/12</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2019/12/02/b_%E6%9C%89%E7%A9%B7%E8%87%AA%E5%8A%A8%E6%9C%BA/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="有穷自动机">有穷自动机</span>
            <span class="post-date" title="2019-12-02 00:00:00">2019/12/02</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2019/11/20/b_%E9%94%99%E6%8E%92%E5%85%AC%E5%BC%8F/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="错排公式">错排公式</span>
            <span class="post-date" title="2019-11-20 00:00:00">2019/11/20</span>
        </a>
        
        <a  class="All "
           href="/2019/10/29/a_%E5%BC%97%E6%B4%9B%E4%BC%8A%E5%BE%B7/"
           data-tag="数据结构，最短路径，图"
           data-author="" >
            <span class="post-title" title="最短路径之弗洛伊德算法">最短路径之弗洛伊德算法</span>
            <span class="post-date" title="2019-10-29 00:00:00">2019/10/29</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/08/04/c_BPR/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="贝叶斯">贝叶斯</span>
            <span class="post-date" title="2019-08-04 08:50:20">2019/08/04</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/08/02/c_matrix/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="矩阵分解与正则化">矩阵分解与正则化</span>
            <span class="post-date" title="2019-08-02 08:25:59">2019/08/02</span>
        </a>
        
        <a  class="All "
           href="/2019/07/28/c_coordination1/"
           data-tag="AI,机器学习,相似度计算"
           data-author="" >
            <span class="post-title" title="协同过滤-上">协同过滤-上</span>
            <span class="post-date" title="2019-07-28 08:25:59">2019/07/28</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/07/26/c_cnn/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="cnn">cnn</span>
            <span class="post-date" title="2019-07-26 18:54:51">2019/07/26</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/07/22/c_coordination2/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="协同过滤—下">协同过滤—下</span>
            <span class="post-date" title="2019-07-22 18:54:26">2019/07/22</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/07/22/c_kmeans/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="K-means算法">K-means算法</span>
            <span class="post-date" title="2019-07-22 18:53:07">2019/07/22</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/07/21/c_nerve2/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="神经网络-下">神经网络-下</span>
            <span class="post-date" title="2019-07-21 11:37:18">2019/07/21</span>
        </a>
        
        <a  class="All "
           href="/2019/07/20/c_nerve1/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="神经网络—上">神经网络—上</span>
            <span class="post-date" title="2019-07-20 17:29:10">2019/07/20</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/06/22/c_gradient/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="线性回归与梯度下降算法">线性回归与梯度下降算法</span>
            <span class="post-date" title="2019-06-22 08:26:36">2019/06/22</span>
        </a>
        
        <a  class="All 机器学习 "
           href="/2019/06/19/c_flyback/"
           data-tag="AI,机器学习"
           data-author="" >
            <span class="post-title" title="线性回归">线性回归</span>
            <span class="post-date" title="2019-06-19 00:00:00">2019/06/19</span>
        </a>
        
        <a  class="All 经典算法 "
           href="/2019/05/20/b_%E8%A7%86%E9%A2%91%E7%BB%8F%E5%85%B8%E7%AE%97%E6%B3%95/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="简单入门算法">简单入门算法</span>
            <span class="post-date" title="2019-05-20 00:00:00">2019/05/20</span>
        </a>
        
        <div id="no-item-tips">

        </div>
    </nav>
    <div id="outline-list">
    </div>
</div>
    </div>
    <div class="hide-list">
        <div class="semicircle" data-title="切换全屏 快捷键 s">
            <div class="brackets first"><</div>
            <div class="brackets">&gt;</div>
        </div>
    </div>
</aside>
<div id="post">
    <div class="pjax">
        <article id="post-d_300-paperDAT" class="article article-type-post" itemscope itemprop="blogPost">
    
        <h1 class="article-title">DAT for recommender</h1>
    
    <div class="article-meta">
        
        
        
        <span class="book">
            <i class="iconfont icon-category"></i>
            
            
            <a  data-rel="AI论文">AI论文</a>
            
        </span>
        
        
    </div>
    <div class="article-meta">
        
            Created At : <time class="date" title='Updated At: 2020-09-10 15:08:47'>2020-07-25 08:50</time>
        
    </div>
    <div class="article-meta">
        
        
        <span id="busuanzi_container_page_pv">
            Views 👀 :<span id="busuanzi_value_page_pv">
                <span class="count-comment">
                    <span class="spinner">
                      <div class="cube1"></div>
                      <div class="cube2"></div>
                    </span>
                </span>
            </span>
        </span>
        
        
    </div>
    
    <div class="toc-ref">
    
        <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-%E5%BC%95%E5%85%A5%EF%BC%9A"><span class="toc-text">1 引入：</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-%E7%9B%B8%E5%85%B3%E5%B7%A5%E4%BD%9C"><span class="toc-text">2 相关工作</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-%E5%88%9D%E6%AD%A5"><span class="toc-text">3 初步</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#3-1-%E9%97%AE%E9%A2%98%E5%AE%9A%E4%B9%89"><span class="toc-text">3.1 问题定义</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#3-2-%E5%BC%95%E5%85%A5BPR%EF%BC%9A"><span class="toc-text">3.2 引入BPR：</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-%E6%8E%AA%E6%96%BD%EF%BC%9A"><span class="toc-text">4 措施：</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#4-1-%E6%9E%84%E9%80%A0%E5%AF%B9%E6%8A%97%E6%AD%A3%E5%88%99%E9%A1%B9%E5%B9%B6%E5%BA%94%E7%94%A8%E5%88%B0BPR%E4%B8%8A%EF%BC%9A"><span class="toc-text">4.1 构造对抗正则项并应用到BPR上：</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4-2-DAT"><span class="toc-text">4.2 DAT</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4-3-The-Strategy-of-Choosing-the-Direction"><span class="toc-text">4.3 The Strategy of Choosing the Direction</span></a></li></ol></li></ol>
    
<style>
    .left-col .switch-btn,
    .left-col .switch-area {
        display: none;
    }
    .toc-level-4 i,
    .toc-level-4 ol {
        display: none !important;
    }
</style>
</div>
    
    <div class="article-entry" itemprop="articleBody">
      
        <p><strong>Directional Adversarial Training for Recommender</strong></p>
<p><strong>Systems</strong></p>
<h2 id="1-引入："><a href="#1-引入：" class="headerlink" title="1 引入："></a>1 引入：</h2><blockquote>
<p>:a:主要内容：</p>
<p><strong>对抗性训练可以作为一种正则化方法来提高泛化性能以及防止深度学习模型过度拟合。</strong></p>
<p>首先作者引入APR， 通过在嵌入空间中添加扰动，将对敌训练扩展到推荐系统中 朝着能够最大化损失函数的方向,但是 对抗性训练是[12]提出的一种新的方法，以解决深度学习模型很容易被对抗性例子[26]愚弄的问题，这些例子是通过施加小的代价来构造的 输入示例上的涡轮。 最近，一些研究[12,22,23]指出，<strong>对抗性训练可以作为一种正则化方法来提高泛化性能以及防止深度学习模型过度拟合。</strong> 最大方向扰动可能会移动嵌入示例x向量接近具有不同标签（不同示例<strong>）甚至不存在示例的示例，不能保持原来的语义信息 在隐藏在用户-项目交互中，并没有充分利用对抗性训练对推荐系统的优势。</strong>。如图一所示。因此，作者改进算法，提出DAT，能够扰动方向施加适当的限制来解决这个问题。</p>
</blockquote>
<p><strong>APR与最大方向的介绍</strong></p>
<p>虽然对抗性训练在计算机视觉(CV)领域取得了很大的成功，但很难直接将其应用于推荐系统。 这是因为输入数据是离散的和主要由高维单热向量（例如，对于用户和项）表示，它们不同于图像域中的连续值。 直接向离散值添加噪声是不合理的，因为它将改变输入示例的原始语义。 相反，最近的一项研究，APR， 通过在嵌入空间中添加扰动，将对敌训练扩展到推荐系统中 朝着能够最大化损失函数的方向。 为了简单起见，我们将这种扰动策略称为<strong>最大方向</strong>（maximum direction）。</p>
<p><img src="https://gitee.com/moluggg/image/raw/master/img/20200710203732.png"/></p>
<p>​                                         图一： 直观素描说明定向对抗性训练的过程。 </p>
<p><strong>观察到的与用户有交互作用的项目在小圆圈（白色圈）中，而在大圆圈中的其他项目是不可观察的 d项目（黄色圈）。圈外无意义</strong></p>
<p>对抗性训练的基本策略是输入 例x，它将保持相同的标签为x和对抗性的例子xadv扰动从x在训练期间。 这使得模型可以考虑x周围更多看不见的空间，从而鼓励loca 相似实例之间的l平滑性，进一步将模型推向更好的泛化[23]。 然而，如图1(A)所示，最大方向扰动可能会移动嵌入示例x向量接近具有不同标签（不同示例<strong>）甚至不存在示例的示例</strong>。 我们通过图2中的初步实验给出了一个详细的例子。 我们2(A)显示了ID16用户的原始Top-10最近邻，图2(B)显示了在嵌入空间中添加最大方向扰动后的Top-10最近邻。 作为我们可以看到，在最大方向扰动下，Top-10最近邻有很大的变化。 这意味着当<strong>前的最大方向策略不能保持原来的语义信息 在隐藏在用户-项目交互中，并没有充分利用对抗性训练对推荐系统的优势。</strong></p>
<p><img src="https://gitee.com/moluggg/image/raw/master/img/20200710204549.png"/></p>
<blockquote>
<p>圆圈表示什么？观察到的与用户有交互作用的项目在小圆圈中，而在大圆圈中的其他项目是不可观察的 d项目。数字又是什么？表示邻居的编号</p>
</blockquote>
<p><strong>DAT的引入以及扰动策略</strong></p>
<p>在本文中，我们通过<strong>对扰动方向施加适当的限制</strong>来解决这个问题，我们称之为定向对抗性训练(DAT)。 我们将一个例子x扰动到嵌入空间中的另一个x’ ,一个权重w被设置为控制x向x0的距离， DAT引入了一个额外的对抗性损失，使得训练过程发挥了极小极大的游戏：</p>
<p> 权重w将通过<strong>最大化</strong>贝叶斯个性化排名(B PR)损失[24]来计算；接下来，对模型进行训练，以最小化B PR损失和DAT损失。 此外，我们考虑产生更多的效果 在协同滤波(CF)推荐系统中，通过引导扰动方向与关键协作信号进行有效嵌入。 直觉是具<strong>有相似行为的用户w 我们对物品表现出类似的偏好</strong>。</p>
<p> 图1(B)说明了我们的方向扰动策略。 给定一个用户u，我们根据预先训练的模型参数，使它对嵌入空间中的Top-K最近邻进行扰动。 意思是<strong>在小圆中，观察到的项目I和未观察到的项目j的扰动方向将被扰动到小圆中的其他观察项目和大圆中的未观察项目</strong>，。 这样，<strong>类似例子的信息就会在彼此之间流动，</strong>这明确地将协作信号注入到对抗性学习过程中。 图2(C)显示了前10名 在添加我们的方向扰动后，用户16的最近邻居，这与原来的方向扰动更相干。</p>
<p><strong>本文的主要贡献总结：</strong></p>
<p>我们通过初步实验研究了现有对抗性训练方法在推荐中的局限性。 </p>
<p>我们支持 提出了一种新的技术，定向对抗性训练(DAT)，通过限制扰动方向，并将协作信号显式编码到对抗性学习过程中。 我们 演示了DAT在广义矩阵因式分解(GM F)[15]上的应用，从而得到了我们的方法-定向对抗性训练广义矩阵化(DAGMF)。 </p>
<p>我们进行实验 在三个公共数据集上验证DAT对推荐系统的有效性。 具体来说，DAGMF在HR（命中率）和NDCG(归一化折扣Cu)上都有显著的改善 多项增益)指标与最先进的模型相比。</p>
<h2 id="2-相关工作"><a href="#2-相关工作" class="headerlink" title="2 相关工作"></a>2 相关工作</h2><p><strong>建议</strong>。 随着信息的蓬勃发展，用户找到符合他们偏好的项目是一个巨大的挑战。 CF技术通过假设用户相似来解决这个挑战 行为对项目表现出类似的偏好，并专注于开发用户-项目交互。 基于邻域的CF[21]是利用显式相似的方法，是早期有效的CF方法之一测量（例如欧氏距离、余弦相似度）来计算用户和项目之间的交互强度。 基于模型的CF是最流行和最广泛使用的推荐方法之一近年来的ES。 矩阵因式分解(M F)[19]方法是基于模型的CF方法的重要实现。 它根据原始用户项比率的分解来预测未知的评级矩阵 通过将每个用户和项目的一个热向量映射为嵌入向量，然后在它们之间进行内积。 然而<strong>，MF的线性结构使它无法捕获复杂和非用户与项目[15]之间的线性交互。 为此</strong>，最近的一些工作[15,6]将深度学习技术应用于CF推荐系统，如GMF。 这是通过建模用户项之间完成的具有多层感知器(MLP)的动作，可以学习更强大和更有表现力的交互功能。 后来，为了学习更有效的嵌入，已经投入了大量的精力来整合 侧信息，如文本或图像内容特征[5]，邻居关系[29]，用户和项目的属性[20,31]以及协作信号[30,7]。 此外，基于届会的建议[13]建议在模拟用户偏好时考虑基于会话的数据，而不是CF方法。 </p>
<p><strong>对抗性培训</strong>。 一开始，提出对抗性训练来解决最先进的分类模型由于其线性结构[12]而容易受到对抗性例子的影响。 它用可以生成的对抗性例子来训练模型 采用快速梯度符号法[12]有效地提高了模型的鲁棒性。 后来，对抗性训练的思想也被推广到自然语言上处理(NLP)任务（例如序列标签）[22]和网络分类器任务[11,8]，其中扰动被添加到嵌入而不是输入上。 他们证明了他们的策略 更可以看作是提高分类器模型泛<strong>化性能的正则化方法，而不是作为防御方法工作</strong>。 值得注意的是，大多数现有的作品都是关于阿巴拉里的所有的训练都集中在CV领域。 很少有研究来探索推荐系统的对抗性训练。 [28]提出了推荐系统中的极小极大极小博弈，即基于生成的IRGAN 对抗网(GANs)框架，这是为了学习更有效的嵌入MF。 [4]是基于向量GAN的CF，而不学习嵌入向量。 他们有非常复杂的框架工作和遭受公认的艰苦训练问题。 APR[14]考虑利用推荐系统中的对抗性训练作为增加最大扰动的正则化 在嵌入空间中忽略协作信号。</p>
<p>值得注意的是，现有的对抗性培训大多集中在cv 领域。针对推荐系统的对抗训练的研究很少。[28]提出了推荐系统中的极小极大对策，即IRGAN<br>生成对抗网(GANs)框架，这是学习更有效的嵌入MF。CFGAN[4]是矢量方向的</p>
<p>基于gan的CF，不需要学习嵌入向量。他们有非常复杂的框架和遭受公认的艰苦训练问题。APR[14]考虑在高校开展对抗性训练</p>
<p>DAT应用于推荐系统中</p>
<h2 id="3-初步"><a href="#3-初步" class="headerlink" title="3 初步"></a>3 初步</h2><blockquote>
<p>:a: 我们首先介绍了推荐系统的技术背景和<strong>GMF</strong>的制定。</p>
<p>然后，我们重新描述了<strong>贝叶斯个性化排序</strong>方法，并给出了一个成对排序损失函数。</p>
</blockquote>
<h3 id="3-1-问题定义"><a href="#3-1-问题定义" class="headerlink" title="3.1 问题定义"></a>3.1 问题定义</h3><p>形式上，我们表示有一组m用户，U={u1，u2，…，um}，一组n项，i={i1，i1，…，in}和稀疏矩阵R×n。 如果用户u有i，则表示的R中的条目(u，i)为：若u,i之间有相互作用则表示为为$R_{ui}$=1。 </p>
<p>在基于模型的推荐系统中，<strong>输入由两个特征向量$v_{u}^{U}$和$v_{i}^{I}$组成，分别描述用户u和项目i</strong>。 </p>
<p>在本文中<strong>，输入向量是一个二进制稀疏向量，通过一个one-hot编码用户或项目的身份。</strong></p>
<p> 在输入的上方是嵌入层，它将 one-hot <strong>稀疏特征向量——&gt;密集的embbding</strong>向量。 之后，用户或项目将由密集向量表示，也称为嵌入向量（embedding vector)。</p>
<p>:100: 如何从onehot编码转变成密集的embbeding？</p>
<p> 接下来，用户和项嵌入向量将被输入到交互函数中 去 预测分数的潜在向量。 然后让rcui表示用户u在i项上的预测偏好得分。 推荐系统中rcui的计算制定如下:</p>
<script type="math/tex; mode=display">
\widehat{r_{u i}}=f\left(\mathbf{p}_{u}, \mathbf{q}_{i} \mid \mathbf{P}, \mathbf{Q}, \Theta_{f}\right)\tag{1}</script><p>注： </p>
<p>①f（·）是交互函数( the interaction function)，建模用户对项目I的偏好，Θf是它的参数。 </p>
<p>②我们定义$P=\{p_u\}_{u∈U}$表示用户的嵌入矩阵，$Q=\{q_i\}_{i∈I}$表示这是项目的嵌入矩阵。 </p>
<p>③设$p_u=P_tv^U_u(p_u∈R^D)$和$q_u=Q_tv^I_i(q_u∈R^D)$，分别表示用户u和i项的嵌入向量，D 为嵌入向量的维数</p>
<p>④ <strong>输入由两个特征向量$v_{u}^{U}$和$v_{i}^{I}$组成，分别描述用户u和项目i</strong></p>
<p>​     NCF[15]是一种深入的CF框架，它是为了捕捉用户与具有多层感知器(MLP)的项目之间复杂而非线性的关系而提出的)。 <strong>GMF是最具代表性的合作伙伴之一 在此框架下构造了滤波模型。 在GMF中，利用MLP和内积将两两用户嵌入和项嵌入映射到偏好分数。</strong></p>
<p>:100: 这是GMF的表示吧</p>
<script type="math/tex; mode=display">
\begin{array}{l}
\phi_{1}\left(\mathbf{p}_{u}, \mathbf{q}_{i}\right)=\mathbf{p}_{u} \odot \mathbf{q}_{i} \\
\widehat{r_{u i}}=\phi_{o u t}\left(\phi_{x} \ldots\left(\phi_{2}\left(\phi_{1}\left(\mathbf{p}_{u}, \mathbf{q}_{i}\right)\right)\right)\right)
\end{array}\tag{2}</script><p>注：该公式是GMF算法</p>
<p>① 其中φ1是用户与项目嵌入向量之间的内积，</p>
<p>② ⊙一般是同或符号，相同为1，但是这里的意思是向量或者矩阵的<strong>内积</strong></p>
<p>③ φx和φout是GMF的第x层和输出MLP层。（GMF算法得到的偏好分数）</p>
<h3 id="3-2-引入BPR："><a href="#3-2-引入BPR：" class="headerlink" title="3.2 引入BPR："></a>3.2 引入BPR：</h3><script type="math/tex; mode=display">
L_{B P R}=\sum_{(u, i, j) \in T}-\ln \sigma(\widehat{r_{u i}}-\widehat{r_{u j}})+\lambda\|\Theta\|^{2}\tag{3}</script><p>注：学过</p>
<h2 id="4-措施："><a href="#4-措施：" class="headerlink" title="4 措施："></a>4 措施：</h2><blockquote>
<p>:a:在这一部分中，我们首先介绍了<strong>对抗性训练GMF</strong>(AGMF)的体系结构)。 接下来，作者<strong>介绍了DAGMF</strong>方法，这是DAT与GMF相结合的实例化。 最后，选择的策略 详细讨论了扰动的方向。</p>
</blockquote>
<h3 id="4-1-构造对抗正则项并应用到BPR上："><a href="#4-1-构造对抗正则项并应用到BPR上：" class="headerlink" title="4.1 构造对抗正则项并应用到BPR上："></a>4.1 构造对抗正则项并应用到BPR上：</h3><pre><code> 对抗性训练是[12]提出的一种新的正则化方法，以提高分类器模型在CV域中的鲁棒性。 与CV领域不同，[22]在CV领域应用对抗性训练 NLP域不再增加输入空间的扰动。 他们在嵌入层中加入对抗性扰动，并认为这种方法是有效的正则化，以防止过拟合提高泛化性能。 与语言处理类似，**APR[14]通过干扰表示用户和项目的嵌入向量，引入MF-BPR中的对抗性训练** Ms。 在本文中，我们希望在深度学习模型GMF中扩展APR，**只在嵌入层即AGMF中施加扰动。**
</code></pre><p>​    在这一部分中，步骤为：</p>
<p>对抗性训练GMF(AGMF)的体系结构)———-&gt;我们介绍了DAGMF方法(这是DAT与GMF相结合的实例化) ————&gt;  选择的策略 详细讨论了扰动的方向。</p>
<p> 现在可以计算<strong>第i项中用户u的预测偏好分数</strong>：</p>
<script type="math/tex; mode=display">
\widehat{r_{u i \Delta}}=f\left(\mathbf{p} \Delta_{a d v}^{u}, \mathbf{q} \Delta_{a d v}^{i} \mid \mathbf{P}_{\Delta a d v}, \mathbf{Q}_{\Delta a d v}, \Theta_{f}\right)\tag{4}</script><p>注：</p>
<p>① $\mathbf{P}_{\boldsymbol{\Delta} a d v}=\left\{\mathbf{p} \Delta_{a d v}^{u}\right\}_{u \in U}$  表示用户的对抗性嵌入矩阵,</p>
<p>:100:是其中一个，不是所有的用户吧</p>
<p>② $\mathbf{Q}_{\boldsymbol{\Delta} a d v}=\left\{\mathbf{q} \Delta_{a d v}^{u}\right\}_{i \in I}$  同上</p>
<p>③ $p ∆^u_{adv} =  P_u + ∆^u_{adv}$  表 示用户u的对抗性嵌入向量， $∆^u_{adv}$ 表示要添加到用户u的嵌入向量中的对抗性扰动。 $∆^u_{adv}$  的维数大小为D，与用户u嵌入向量相同</p>
<p>④ 由三可以得知$q ∆^i_{adv}$的来由</p>
<p> <strong>对抗性扰动旨在最大化推荐模型的目标函数</strong>。 因此，我们将其定义如下：</p>
<script type="math/tex; mode=display">
\boldsymbol{\Delta}_{a d v}=\underset{\Delta,\|\Delta\| \leq \epsilon}{\arg \max } L_{B P R}\left(T \mid \widehat{\boldsymbol{\Theta}}+\boldsymbol{\Delta}, \Theta_{f}\right)\tag{5}</script><p>①​ :100: 这里的$\widehat{\boldsymbol{\Theta}}$不是权重参数吧？</p>
<p> 其中Θb是用户和项目的嵌入矩阵，包括P和Q，</p>
<p>② ∆表示嵌入矩阵的扰动，$\epsilon$表示控制∆范数的超参数。</p>
<p>③  T表示所有成对训练实例的集。</p>
<p>④ :100: 的 $\boldsymbol{\Delta}_{a d v}$ 和$∆^u_{adv}$ 有何关系？</p>
<p> 本文采用L2范数(k)。</p>
<p> 在<strong>上述方程中得到$∆_{adv}$_估计是很难的</strong>。 因为目标函数和神经网络涉及复杂的操作。 因此，[12]提出了一种<strong>快速梯度符号的逼近方法</strong>，通过对∆周围的目标函数进行线性化。，表示如下：</p>
<script type="math/tex; mode=display">
\boldsymbol{\Delta}_{a d v}=\epsilon \frac{\mathbf{g}}{\|\mathbf{g}\|}, \mathbf{g}=\nabla_{\widehat{\Theta}} L_{B P R}\left(T \mid \widehat{\mathbf{\Theta}}+\Delta, \Theta_{f}\right)\tag{6}</script><p>现在， 构造对抗正则项并应用到BPR上</p>
<script type="math/tex; mode=display">
L_{B P R \Delta}=\sum_{(u, i, j) \in T}-\ln \sigma\left(\widehat{r_{u i}} _\Delta-\widehat{r_{u j}}_{\Delta}\right)\tag{7}</script><script type="math/tex; mode=display">
L_{a d v}=L_{B P R}+\lambda L_{B P R \Delta}\tag{8}</script><p><img src="E:\typora图片\113551-650670.png" alt="image-20200801113549697"></p>
<h3 id="4-2-DAT"><a href="#4-2-DAT" class="headerlink" title="4.2 DAT"></a>4.2 DAT</h3><p>然而，只有考虑到推荐模型嵌入空间中向最大方向的扰动，才能将一些噪声信息带入训练过程。 因此，我们建议DAT对抗性培训，以解决这一问题，以更好地应用对抗性培训在推荐系统。 我们方法的直觉<strong>是嵌入空间中的扰动方向将限制在现有嵌入空间中的其他例子上，而不是最坏的扰动方向</strong>，这样我们就可以将协作信号集成到训练过程中。 在游戏中 极小极小博弈，嵌入层的质量将逐步提高。 图3说明了在模型GMF中应用定向对抗性训练的框架。</p>
<p>:100: worst perturbation direction与maximum direction in</p>
<p>the embedding space 有何关系？</p>
<p> 我们定义了从用户ut到用户UZ的嵌入空间中的方向向量：</p>
<script type="math/tex; mode=display">
\mathbf{d}_{u_{z}}^{u_{t}}=\frac{\widetilde{\mathbf{d}}_{u_{z}}^{u_{t}}}{\left\|\tilde{\mathbf{d}}_{u_{z}}^{u_{t}}\right\|}, \tilde{\mathbf{d}}_{u_{z}}^{u_{t}}=\mathbf{p}_{u_{z}}-\mathbf{p}_{u_{t}}\tag{9}</script><p> 在我们的方法中，<strong>训练示例将扰动的用户被定义为目标集</strong></p>
<script type="math/tex; mode=display">
\boldsymbol{\Delta}\left(w^{u}\right)=w_{u^{\prime}}^{u} \mathbf{d}_{\mathbf{u}^{\prime}}^{\mathbf{u}^{\prime}}\tag{10}</script><p>注：</p>
<p>①  ${d}_{\mathbf{u}^{\prime}}^{\mathbf{u}}$ 表示就是上述公式</p>
<p>②  我们将 $w_{u^{\prime}}^{u} $ 定义为对应于方向向量${d}_{\mathbf{u}^{\prime}}^{\mathbf{u}}$的权重</p>
<p>然后，将<strong>用户u的定向对抗性嵌入向量表示</strong>为：</p>
<script type="math/tex; mode=display">
\mathbf{p}_{\Delta_{d a d v}^{u}}=\mathbf{p}_{u}+\Delta\left(w^{u}\right)\tag{11}</script><p>由于BPR损失将在训练过程中最小化，我们<strong>考虑如何寻求方向向量的最坏情况权重</strong>，从而使BPR损失最大化：</p>
<script type="math/tex; mode=display">
w_{\text {dadv}}^{u}=\underset{w^{u},\left\|w^{u}\right\| \leq \epsilon}{\arg \max } L_{B P R}\left(T \mid \widehat{\Theta}+\Delta\left(w^{u}\right), \Theta_{f}\right)\tag{12}</script><p> :100:这里的$\widehat{\Theta}$ 就是上述同时中的P吧</p>
<p>上文公式（5）改善成公式（12），对应的与公式（10）相邻的几个函数也要改变。改变步骤如下：</p>
<p><strong>公式（6,7,8）——&gt;公式（13,14,15）</strong></p>
<p> 在限制扰动方向后，在计算最坏情况权重时不再是公式11。 因此，我们借用[23]的想法，通过在LBPR(T|Θb∆(Wu)，Θf)中应用二阶泰勒，可以近似估计扰动强度Wu)。 形式上，估计最坏情况权重的解决方案可以定义为如下：</p>
<script type="math/tex; mode=display">
w_{d a d v}^{u}=\epsilon \frac{g}{\|g\|}, g=\nabla_{w^{u}} L_{B P R}\left(T \mid \widehat{\Theta}+\Delta\left(w^{u}\right), \Theta_{f}\right)\tag{13}</script><p>类似地，则重新定义对抗性训练的总体目标函数优化如下：</p>
<script type="math/tex; mode=display">
<\widehat{\Theta}, \Theta_{f}>=\underset{\hat{\Theta}, \Theta_{f}}{\arg \min } L_{B P R}+\lambda L_{B P R \Delta_{d a d v}}\tag{14}</script><p>通过对上述两个过程的统一，我们可以制定一个极小极大目标函数。 模型参数的优化&lt;Θb，Θf&gt;是最小化玩家，并寻求最坏情况下的扰动 重量是最大的玩家：</p>
<script type="math/tex; mode=display">
<\widehat{\mathbf{\Theta}}, \Theta_{f}, w_{\text {dadv}}>=\underset{\hat{\mathbf{\Theta}}, \Theta_{f}}{\arg \min } \underset{w_{\text {dadv}}}{\arg \max } L_{B P R}+\lambda L_{B P R \Delta_{\text {dadv}}}\tag{15}</script><p> 从另一个角度来看，我们的DAT可以看作是一种数据增强的方法，它同时在包含协作信号的原始数据和扰动数据上训练模型。 w由于本文的重点是对抗性训练，因此将这一探索作为未来的工作。 算法1显示了我们的DAGMF的详细训练过程。 最后，值得注意的是，在BE中轧钢，模型参数Θb，Θf是通过优化GMF（第1行）初始化的，而不是随机的。 这是因为当模型欠拟合时，正常的训练过程就足以得到更好的参数。 在模型参数开始过拟合数据后，需要添加对抗性扰动。</p>
<h3 id="4-3-The-Strategy-of-Choosing-the-Direction"><a href="#4-3-The-Strategy-of-Choosing-the-Direction" class="headerlink" title="4.3 The Strategy of Choosing the Direction"></a><strong>4.3 The Strategy of Choosing the Direction</strong></h3><p>如上所述，最坏的扰动方向被放弃，扰动方向在现有的内部受到限制，嵌入空间与可学习的权重，以便我们避免不正确的信息纳入培训过程。 此外，在适当选择扰动方向的情况下，进行了对比 在嵌入空间中，信号可以按扰动方向编码，从而增强嵌入层的表现力。 众所周知，协作Filte的核心假设 环推荐系统是指具有相似行为和特征的用户具有相似的偏好。</p>
<p>DAT里面协同信号是不是NGCF的项目-用户embedding</p>
<p> 用户u在用户嵌入空间中对用户u的Top-K最近邻居的f扰动。 基于预先训练的模型p，我们将用户u，n(K)的Top-K最近邻居修复为Uu目标用于提高模型效率的安培计。 <strong>首先，我们随机选择一个目标用户u0(u0∈u目标)来计算从用户u到u0的方向向量。 </strong></p>
<p><strong>然后，可以得到权重wu0指向Eq. 12. </strong></p>
<p><strong>此外，观测项目I的扰动方向</strong>$I_{u}^{+} - i $</p>
<p>就这样，$I_{target}^{j}$未观察到的项目j将会代替$I_u^{+}-i$ 和 $I/I_{U}^{+}$</p>
<p>权重wii0或wjj0将以用户的相同方式获得。</p>
<p>:100: 怎么用公式12表示</p>
<p>总之，我们的DAT的优点是它可以将协作信号合并到CF推荐系统中。 通过这种方式，类似用户之间的首选项将被捕获 在培训过程中，这大大有利于推荐系统的性能。</p>
<blockquote>
<p>我的博客即将同步至腾讯云+社区，邀请大家一同入驻：<a target="_blank" rel="noopener" href="https://cloud.tencent.com/developer/support-plan?invite_code=1a1gqppab9l0f">https://cloud.tencent.com/developer/support-plan?invite_code=1a1gqppab9l0f</a></p>
</blockquote>

      
       <hr><span style="font-style: italic;color: gray;"> 转载请注明来源，欢迎对文章中的引用来源进行考证，欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论，也可以邮件至 2572876783@qq.com </span>
    </div>
</article>


<p>
    <a  class="dashang" onclick="dashangToggle()">💰</a>
</p>






    
        <!-- MathJax配置，可通过单美元符号书写行内公式等 -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
        src="//cdn.jsdelivr.net/npm/mathjax@2.7.8/unpacked/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
<input type="hidden" id="MathJax-js"
        value="//cdn.jsdelivr.net/npm/mathjax@2.7.8/unpacked/MathJax.js?config=TeX-MML-AM_CHTML">
</input>
    




    </div>
    <div class="copyright">
        <p class="footer-entry">
    ©2016-2020 MOLU
</p>
<p class="footer-entry">Built with <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/yelog/hexo-theme-3-hexo" target="_blank">3-hexo</a> theme</p>

    </div>
    <div class="full-toc">
        <button class="full" data-title="切换全屏 快捷键 s"><span class="min "></span></button>
<a class="" id="rocket" ></a>

    </div>
</div>

<div class="hide_box" onclick="dashangToggle()"></div>
<div class="shang_box">
    <a class="shang_close"  onclick="dashangToggle()">×</a>
    <div class="shang_tit">
        <p>Help us with donation</p>
    </div>
    <div class="shang_payimg">
        <div class="pay_img">
            <img src="/img/alipay.jpg" class="alipay" title="扫码支持">
            <img src="/img/weixin.jpg" class="weixin" title="扫码支持">
        </div>
    </div>
    <div class="shang_payselect">
        <span><label><input type="radio" name="pay" checked value="alipay">alipay</label></span><span><label><input type="radio" name="pay" value="weixin">weixin</label></span>
    </div>
</div>


</body>
<script src="/js/jquery.pjax.js?v=1.1.0" ></script>

<script src="/js/script.js?v=1.1.0" ></script>
<script>
    var img_resize = 'default';
    function initArticle() {
        /*渲染对应的表格样式*/
        
            $("#post .pjax table").addClass("green_title");
        

        /*渲染打赏样式*/
        
        $("input[name=pay]").on("click", function () {
            if($("input[name=pay]:checked").val()=="weixin"){
                $(".shang_box .shang_payimg .pay_img").addClass("weixin_img");
            } else {
                $(".shang_box .shang_payimg .pay_img").removeClass("weixin_img");
            }
        })
        

        /*高亮代码块行号*/
        

        /*访问数量*/
        
        $.getScript("//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js");
        

        /*代码高亮，行号对齐*/
        $('.pre-numbering').css('line-height',$('.has-numbering').css('line-height'));

        
        
    }

    /*打赏页面隐藏与展示*/
    
    function dashangToggle() {
        $(".shang_box").fadeToggle();
        $(".hide_box").fadeToggle();
    }
    

</script>

<!--加入行号的高亮代码块样式-->

<!--自定义样式设置-->
<style>
    
    
    .nav {
        width: 542px;
    }
    .nav.fullscreen {
        margin-left: -542px;
    }
    .nav-left {
        width: 120px;
    }
    
    
    @media screen and (max-width: 1468px) {
        .nav {
            width: 492px;
        }
        .nav.fullscreen {
            margin-left: -492px;
        }
        .nav-left {
            width: 100px;
        }
    }
    
    
    @media screen and (max-width: 1024px) {
        .nav {
            width: 492px;
            margin-left: -492px
        }
        .nav.fullscreen {
            margin-left: 0;
        }
    }
    
    @media screen and (max-width: 426px) {
        .nav {
            width: 100%;
        }
        .nav-left {
            width: 100%;
        }
    }
    
    
    .nav-right .title-list nav a .post-title, .nav-right .title-list #local-search-result a .post-title {
        color: #383636;
    }
    
    
    .nav-right .title-list nav a .post-date, .nav-right .title-list #local-search-result a .post-date {
        color: #5e5e5f;
    }
    
    
    .nav-right nav a.hover, #local-search-result a.hover{
        background-color: #e2e0e0;
    }
    
    

    /*列表样式*/
    

    /* 背景图样式 */
    
    


    /*引用块样式*/
    

    /*文章列表背景图*/
    

    
</style>







</html>
